'''
遍历整个列表
用for循环遍历整个列表
'''
list_3 = ['people', 'b', 'Chinese', 'China', '1']
for a in list_3:  # 这是一个简单的循环，代表依次将list_3列表中的元素并赋值给a,并将a打印，直到list_3里面的元素被打印完
    print(a)  # 其中a为临时变量，可以指定任何名称，如果用不到临时变量，可以用'_'单下划线代替
### people
### b
### Chinese
### China
### 1
'''
用for循环创建一个列表
for循环中range()用来创建一个数值列表，range(5)则代表从0到4，不包含5，也可以自己定义range(1,5),代表从1到4，左闭右开，
range(1,10,2)其中最后一个代表步长，即每次隔两个数取一次，这个结果为1，3，5，7，9，不写的话默认为1
'''
list_4 = []  # 先定义一个空列表
for a in range(5):
    list_4 = list_4 + [a]  # 每次循环都往列表里面加入一个元素
print(list_4)
### [0, 1, 2, 3, 4]

squres = list(range(5))
squres_1 = [a for a in range(5)]  # 这两种都可以创建列表，并且更加简单，第二个称为列表生成式
squres_2 = [a ** 2 for a in range(1, 10)]  # 这个是生成1到9的平方的列表
print(squres)
print(squres_1)
print(squres_2)
### [0, 1, 2, 3, 4]
### [0, 1, 2, 3, 4]
### [1, 4, 9, 16, 25, 36, 49, 64, 81]


'''
min(),max(),sum()可以对列表进行计算，分别为最小值，最大值，求和,sum()只能对列表中只有整型的列表求和

使用列表的一部分:切片
要创建切片，可指定要使用的第一个元素和最后一个元素的索引。与函数range() 一样
'''
print(max(squres))  ### 4
print(min(squres))  ### 0
print(sum(squres))  ### 10

# 切片
print(squres[1:3])  # 输出列表中索引1到2的元素，输出为列表，不包括3，和range()一样，都为左闭右开
print(squres[-3:-1])  # 输出列表中索引-3到-2的元素，必须为小的索引在前，否则输出空列表
print(squres[:])  # 输出整个列表
print(squres[:4])  # 输出索引从0到3的元素，如果冒号前面不写，则默认为0，后面不写，则默认为输出后面所有元素
print(squres[1:])  # 输出索引1后面的所有元素
print(squres[4:1:-1])  # 输出索引从4到2的元素，后面的-1代表步长为-1，即倒着查找，默认情况下为1
print(squres[::-1])  # 代表将列表倒着输出
### [1, 2]
### [2, 3]
### [0, 1, 2, 3, 4]
### [0, 1, 2, 3]
### [1, 2, 3, 4]
### [4, 3, 2]
### [4, 3, 2, 1, 0]
